/*
 * I_DataSource.java
 */

package pipeline;


/**
 * A data source for the pipeline.
 *
 * @author Luca Molari
 * @param <T> the output item's type.
 */
public interface I_DataSource<T> {

	
    /**
     * Get an item.
     *
     * @return the item.
     * @throws InterruptedException if a blocking call in 
     * underlying implementation does so.
     * @throws SourceClosedException if this source is no longer 
     * providing data.
     */
    public T get() throws InterruptedException, SourceClosedException;

    
}
